package br.unipar.blog.controller.usuario;

import br.unipar.blog.controller.AbstractUniparController;
import br.unipar.blog.manager.usuario.CadastroUsuarioBuilder;
import br.unipar.blog.manager.usuario.CadastroUsuarioFactory;
import br.unipar.blog.manager.usuario.CadastroUsuarioVo;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;

public class CadastroUsuarioController extends AbstractUniparController {
    
    @Autowired
    private CadastroUsuarioBuilder cadastroUsuarioBuilder;
    
    @Autowired
    private CadastroUsuarioFactory cadastroUsuarioFactory;
    
    private CadastroUsuarioVo vo = createVo();

    public CadastroUsuarioVo getVo() {
        return vo;
    }

    public void setVo(CadastroUsuarioVo vo) {
        this.vo = vo;
    }

    private CadastroUsuarioVo createVo() {
        return new CadastroUsuarioVo();
    }
    
    public void limpar() {
        vo = createVo();
    }
    
    public void salvar() {
        try {
            cadastroUsuarioBuilder.build(vo);
            vo = createVo();
        } catch (IllegalArgumentException e) {
            setMensagem(e.getMessage());
        }
    }
    
    private List<CadastroUsuarioVo> usuarioList = new ArrayList<CadastroUsuarioVo>();

    public List<CadastroUsuarioVo> getUsuarioList() {
        return usuarioList;
    }
    
    private String filtro = "";

    public String getFiltro() {
        return filtro;
    }

    public void setFiltro(String filtro) {
        this.filtro = filtro;
    }
    
    public void filtrar() {
        usuarioList = cadastroUsuarioFactory.buscarParcialPeloEmailOuNome(filtro);
    }

}
